package com.zp.business.entity.patVisit.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.excel.annotation.ExcelDictFormat;
import com.zp.common.excel.convert.ExcelDictConvert;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;



/**
 * 患者住院信息视图对象
 *
 * @author zhang peng
 * @ date 2024-06-24
 */
@Data
@ExcelIgnoreUnannotated
public class PatVisitVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String visitId;

    /**
     * 病人ID
     */
    @ExcelProperty(value = "病人ID")
    private String patientId;

    /**
     * 门诊ID
     */
    @ExcelProperty(value = "门诊ID")
    private String clinicId;

    /**
     * 住院号
     */
    @ExcelProperty(value = "住院号")
    private String hospitalNo;

    /**
     * 住院次数
     */
    @ExcelProperty(value = "住院次数")
    private Integer hospitalizationNumber;

    /**
     * 发病时间
     */
    @ExcelProperty(value = "发病时间")
    private Date situationTime;

    /**
     * 病情状态
     */
    @ExcelProperty(value = "病情状态")
    private String situationType;

    /**
     * 入院情况
     */
    @ExcelProperty(value = "入院情况", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "admission_situation_dict")
    private String hospitalSituation;

    /**
     * 隔离情况
     */
    @ExcelProperty(value = "隔离情况", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String quarantine;

    /**
     * 入院诊断
     */
    @ExcelProperty(value = "入院诊断")
    private String diagnosis;

    /**
     * 入院诊断编码
     */
    @ExcelProperty(value = "入院诊断编码")
    private String diagnosisCode;

    /**
     * 入院科室
     */
    @ExcelProperty(value = "入院科室")
    private String deptAdmissionTo;

    /**
     * 入院病区
     */
    @ExcelProperty(value = "入院病区")
    private String wardAdmissionTo;

    /**
     * 入院日期及时间
     */
    @ExcelProperty(value = "入院日期及时间")
    private Date admissionTime;

    /**
     * 入院途径
     */
    @ExcelProperty(value = "入院途径")
    private String channel;

    /**
     * 入院来源
     */
    @ExcelProperty(value = "入院来源", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "patient_class_dict")
    private String source;

    /**
     * 确诊医生
     */
    @ExcelProperty(value = "确诊医生")
    private String confirmDoctor;

    /**
     * 出院病区
     */
    @ExcelProperty(value = "出院病区")
    private String wardDischargeTo;

    /**
     * 出院科室
     */
    @ExcelProperty(value = "出院科室")
    private String deptDischargeTo;

    /**
     * 出院时间
     */
    @ExcelProperty(value = "出院时间")
    private Date dischargeTime;

    /**
     * 在院出院状态Y在院、N出院
     */
    @ExcelProperty(value = "在院出院状态Y在院、N出院", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String inFlag;

    /**
     * 在科标识Y在科室、N不在科室
     */
    @ExcelProperty(value = "在科标识Y在科室、N不在科室", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String deptFlag;

    /**
     * 在病区标识Y在病区、N不在病区
     */
    @ExcelProperty(value = "在病区标识Y在病区、N不在病区", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String wardFlag;

    /**
     * 所在科室
     */
    @ExcelProperty(value = "所在科室")
    private String deptStayed;

    /**
     * 所在病区
     */
    @ExcelProperty(value = "所在病区")
    private String wardCode;

    /**
     * 首次入科时间
     */
    @ExcelProperty(value = "首次入科时间")
    private Date firstEnterDeptTime;

    /**
     * 入科日期及时间
     */
    @ExcelProperty(value = "入科日期及时间")
    private Date enterDeptTime;

    /**
     * 首次入病区时间
     */
    @ExcelProperty(value = "首次入病区时间")
    private Date firstEnterWardTime;

    /**
     * 入病区日期及时间
     */
    @ExcelProperty(value = "入病区日期及时间")
    private Date enterWardTime;

    /**
     * 质控护士
     */
    @ExcelProperty(value = "质控护士")
    private String qualityNurse;

    /**
     * 责任护士
     */
    @ExcelProperty(value = "责任护士")
    private String dutyNurse;

    /**
     * 管床医师
     */
    @ExcelProperty(value = "管床医师")
    private String doctorInCharge;

    /**
     * 上级医生
     */
    @ExcelProperty(value = "上级医生")
    private String upperDoctor;

    /**
     * 主任医生
     */
    @ExcelProperty(value = "主任医生")
    private String directorDoctor;

    /**
     * 护理等级
     */
    @ExcelProperty(value = "护理等级")
    private String nursingClass;

    /**
     * 首次入床房间号
     */
    @ExcelProperty(value = "首次入床房间号")
    private String firstRoomNo;

    /**
     * 首次床号
     */
    @ExcelProperty(value = "首次床号")
    private Integer firstBedNo;

    /**
     * 首次床标号
     */
    @ExcelProperty(value = "首次床标号")
    private String firstBedLabel;

    /**
     * 患者当前房间号
     */
    @ExcelProperty(value = "患者当前房间号")
    private String roomNo;

    /**
     * 患者当前床标号
     */
    @ExcelProperty(value = "患者当前床标号")
    private String bedLabel;

    /**
     * 床号
     */
    @ExcelProperty(value = "床号")
    private String bedNo;

    /**
     * 预交金余额
     */
    @ExcelProperty(value = "预交金余额")
    private BigDecimal prepayments;

    /**
     * 预交金限额
     */
    @ExcelProperty(value = "预交金限额")
    private BigDecimal paymentInAdvance;

    /**
     * 余欠款  余欠款等于预交款减去自费金额
     */
    @ExcelProperty(value = "余欠款  余欠款等于预交款减去自费金额")
    private BigDecimal paymentLast;

    /**
     * 总费用
     */
    @ExcelProperty(value = "总费用")
    private BigDecimal totalCosts;

    /**
     * 实际应付费用
     */
    @ExcelProperty(value = "实际应付费用")
    private BigDecimal totalCharges;

    /**
     * 出院方式
     */
    @ExcelProperty(value = "出院方式")
    private String settledType;

    /**
     * 出院结算标记
     */
    @ExcelProperty(value = "出院结算标记")
    private String settledIndicator;

    /**
     * 中途结算日期
     */
    @ExcelProperty(value = "中途结算日期")
    private Date halfwayDate;

    /**
     * 机构ID
     */
    @ExcelProperty(value = "机构ID")
    private String orgId;


    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remarks;

    /**
     * 是否新生儿一块出院，Y：是 N：否
     */
    @ExcelProperty(value = "是否新生儿一块出院，Y：是 N：否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String leaveWithoutNewborn;

    /**
     * 是否新生儿一起结算，Y：是 N：否
     */
    @ExcelProperty(value = "是否新生儿一起结算，Y：是 N：否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String isNewBornOutpHos;

    /**
     * 转科科别
     */
    @ExcelProperty(value = "转科科别")
    private String chanceDept;

    /**
     * 质控时间
     */
    @ExcelProperty(value = "质控时间")
    private Date qualityTime;

    /**
     * 病案质量
     */
    @ExcelProperty(value = "病案质量")
    private String medicalQuality;

    /**
     * 离院方式
     */
    @ExcelProperty(value = "离院方式", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "discharge_disposition_dict")
    private String liveHosType;

    /**
     * 质控医师
     */
    @ExcelProperty(value = "质控医师")
    private String qualityDoctor;

    /**
     * 最后一次划价时间
     */
    @ExcelProperty(value = "最后一次划价时间")
    private Date lastAcctTime;

    /**
     * 结算标识
     */
    @ExcelProperty(value = "结算标识")
    private String feesNo;

    /**
     * 入院科室名称
     */
    @ExcelProperty(value = "入院科室名称")
    private String deptAdmissionToName;

    /**
     * 入院病区名称
     */
    @ExcelProperty(value = "入院病区名称")
    private String wardAdmissionToName;


    /**
     * 患者姓名
     */
    @ExcelProperty(value = "患者姓名")
    private String name;

    /**
     * 姓名拼音码
     */
    @ExcelProperty(value = "姓名拼音码")
    private String inputCode;

    /**
     * 身高(cm)
     */
    @ExcelProperty(value = "身高(cm)")
    private String height;

    /**
     * 体重(g)
     */
    @ExcelProperty(value = "体重(g)")
    private BigDecimal weight;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private String sex;

    /**
     * 婚姻
     */
    @ExcelProperty(value = "婚姻", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "marriage_dict")
    private String marriage;

    /**
     * 职业
     */
    @ExcelProperty(value = "职业", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "profession_dict")
    private String occupation;

    /**
     * 年龄
     */
    @ExcelProperty(value = "年龄")
    private Integer age;

    /**
     * 年龄-月
     */
    @ExcelProperty(value = "年龄-月")
    private Integer ageMonth;

    /**
     * 年龄-天
     */
    @ExcelProperty(value = "年龄-天")
    private Integer ageDay;

    /**
     * 年龄-时
     */
    @ExcelProperty(value = "年龄-时")
    private Integer ageHours;

    /**
     * 年龄-分
     */
    @ExcelProperty(value = "年龄-分")
    private Integer ageMinutes;

    /**
     * 费别
     */
    @ExcelProperty(value = "费别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "charge_type_dict")
    private String chargeType;


    /**
     * 身份证号
     */
    @ExcelProperty(value = "身份证号")
    private String idNo;

    /**
     * 电话
     */
    @ExcelProperty(value = "电话")
    private String phone;

    /**
     * 联系人
     */
    @ExcelProperty(value = "联系人")
    private String contacts;


    /**
     * 联系人电话
     */
    @ExcelProperty(value = "联系人电话")
    private String contactsPhone;


}
